In the information age of today, computing devices have proliferated virtually throughout all levels of modern society. These devices often interact with each other and with computers through networks such as local area networks (LANs) generally by means of wires or cables. Other means of connectivity have been developed, for example, to provide links between PCs and peripherals using infrared connections based on the IrDA protocol developed by the Infrared Data Association. Infrared connections provide interoperable communication between devices through standard IrDA ports that are included in many devices, such as desktop and laptop computers, printers, fax machines, keyboards, joysticks and other digital devices.
Despite the advantages provided by infrared connections, there are some notable limitations to its practical use. For example, infrared connections typically require a relatively short line-of-sight connection and is very directional. Furthermore, infrared beams can not penetrate opaque materials such as walls thereby limiting its use within the same room. The growing prevalence of wireless handheld devices such as mobile phones and PDAs has created a need to provide connectivity by enabling voice and data connections with computers and other digital devices.
One proposed solution that provides the desired connectivity without the limitations imposed by infrared is Bluetooth. Bluetooth is a communications standard for short-range radio connections that allow communication with mobile devices in an ad-hoc fashion. Bluetooth enables voice and data transfer between communication devices and computing devices within a range of about 10 to 100 meters. Since it is based on radio technology, it allows for the elimination of cables that normally connect devices to be replaced by a universal short-range radio link. And due to its RF nature, the devices do not need to be within line-of-sight of each other which allow connections through walls or other non-metal objects. This enables mobile phones to be especially suitable for use with Bluetooth where they could, for example, operate as a modem for a laptop or PDA to further enhance mobility.
Some applications that are suitable for use with Bluetooth include synchronization of calendars, messaging, and phonebooks, file transfer functionality, and object push for business card support, for example. The Bluetooth specification defines the use of the Object Exchange (OBEX) protocol for transferring objects such as files, pictures, calendar entries (vCalendar) and business cards (vCard). OBEX is a session protocol that was originally specified by the IrDA (Infrared Data Association) for transporting objects over infrared connections. For a more complete description of the OBEX protocol the interested reader may refer to “IrDA Object Exchange Protocol IrOBEX”, version 1.2, Counterpoint Systems Foundry, Inc., Mar. 18, 1999.
Although OBEX provides an efficient method to transfer a wide variety of data and commands in a resource sensitive and standardized environment, typical OBEX transfers involve transporting one object (file) at a time. By way of example, using a ‘PUT’ command to initiate a file transfer operation precludes the use of sending other objects that are not part of the ongoing transfer. The ‘PUT’ command “pushes” content from a content storage of a sending device to a receiving device. However, there are times when it would advantageous to be able to send multiple unrelated objects during the same operation.
Solutions presented in the past to deal with this issue have been intimately linked with a specific protocol. By way of example, some systems use protocols that allow for multiplexing in the form of multiple sessions running in parallel. While others adopt different protocols for different types of content and run those protocols in parallel, which would require more resources and processing power. With respect to using OBEX, the only solution thus far has been to open two separate sessions, by sending a connection request to two separate target IDs, and run them in parallel where each piece of content is handled as one object carried in one session. This technique has the drawback of requiring a relatively complex OBEX implementation which has a negative impact on performance of a low bit rate short range systems such as Bluetooth.
In view of the foregoing, a technique is needed that permits the parallel transfer of multiple objects during an ongoing operation that is compatible with the OBEX protocol and does not require additional resources for a separate session.